#ifndef _VN_SFML_DRAWABLE_H_
#define _VN_SFML_DRAWABLE_H_

#include "SFML\Graphics.hpp"

namespace vn
{
	class SFMLDrawable
	{
	public:
		SFMLDrawable(float p_layer) : m_layer(p_layer), m_visible(true), m_render(true){}
		virtual ~SFMLDrawable(){}

		virtual void draw(sf::RenderWindow&) = 0;
		virtual void draw(sf::RenderTexture&) = 0;
		const bool doRender() const { return m_render; }

		const float getLayer() const { return m_layer; }
		void setVisible(bool p_value) { m_visible = p_value; }
		const bool isVisible() const { return m_visible; }
		
	protected:
		bool m_render;

	private:
		
		float m_layer;
		bool m_visible;
	};
}

#endif // _VN_SFML_DRAWABLE_H_